-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix for ccm and cmx out of sync #171
Conversation
@JohnHadish can you do a functional test to make sure the problem is fixed? @bentsherman would you be able to do a quick code check to make sure nothing weird stands out to you? |
This does not appear to work for me. After I installed the To reproduce error, use my test KINC repo located at ERROR MESSAGESBEFORE FIX ERROR
AFTER FIX ERROR -- last few lines (it was much longer)
|
@JohnHadish you will have to rerun the |
Yes, I confirm that this is what I did, here are my exact steps, I started with a fresh test directory for this to ensure I was not using old files:
|
Okay. It looks like the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works great now!
Thanks @JohnHadish and @bentsherman for the quick reviews! |
This PR fixes issue #157. The problem potentially occurs with the
corrpower
orcond-test
analytics, but can only happen in either case with a sparse matrix. The problem is if the cmx or ccm files are sparse, the processing of pairs is not starting at the first pair. It doesn't create incorrect results, it just offsets the counting in the for loops which causes the ccm to have fewer pairs than the original cmx. The unfortunate side effect, other than the warning message is that a few potential edges may be missing from the output files after anextract
.This code fixes that problem by adding a new function
Matrix::Pair::readFirst()
which allows each analytic to first find the first real pair in a sparse matrix before beginning the first work block. I also adjusted the code a bit to ensure that if there ever was another future problem with pairs missing in one file that moving between pairs in a files can recover in the event of an out of sync problem.